layui.use(['table','layer','jquery'],function() {

    var layer = parent.layer === undefined ? layui.layer : top.layer,
        $ = layui.jquery,
        table = layui.table;

    /**
     * 加载数据表格
     */
    var tableIns = table.render({
        id: 'dictionaryTable'
        // 容器元素的ID属性值
        , elem: '#currentTableId'
        // 容器的高度 full-差值
        , height: 'full-125'
        // 单元格最小的宽度
        , cellMinWidth: 95
        // 访问数据的URL（后台的数据接口）
        , url: ctx + '/dictionary/list'
        // 开启分页
        , page: true
        // 默认每页显示的数量
        , limit: 10
        // 每页页数的可选项
        , limits: [10, 20, 30, 40, 50]
        // 开启头部工具栏
        , toolbar: '#toolbarDemo'
        // 表头
        , cols: [[
            // field：要求field属性值与返回的数据中对应的属性字段名一致
            // title：设置列的标题
            // sort：是否允许排序（默认：false）
            // fixed：固定列
            {type: 'checkbox', fixed: 'center'}
            , {field: 'id', title: 'ID', sort: true, fixed: 'left'}
            , {field: 'dictionaryName', title: '字典名', align: 'center'}
            , {field: 'dictionaryValue', title: '字典值', align: 'center'}
            , {field: 'createDate', title: '创建时间', align: 'center'}
            , {field: 'updateDate', title: '修改时间', align: 'center'}
            , {title: '操作', templet:'#currentTableBar', fixed: 'right', align: 'center', minWidth: 150}
        ]]
    });


    /**
     * 搜索按钮的点击事件
     */
    $("#searchBtn").click(function () {
        // console.log($("[name='dictionaryName']").val());

        /**
         * 表格重载
         *  多条件查询
         */
        tableIns.reload({
            // 设置需要传递给后端的参数
            where: { //设定异步数据接口的额外参数，任意设
                // 通过文本框/下拉框的值，设置传递的参数
                dictionaryName: $("[name='dictionaryName']").val(), // 字典名,
                dictionaryValue: $("[name='dictionaryValue']").val() // 字典值
            }
            , page: {
                curr: 1 // 重新从第 1 页开始
            }
        });

    });
    /*监听头部工具栏事件*/
    table.on('toolbar(dictionarys)',function (data){
        //console.log(data);
        //判断对应的事件类型
        if(data.event =="add"){

            //添加操作
            openDictionaryDialog();
        }else if(data.event =="delete"){
            //删除操作
            deleteDictionaryList(data);
        }
    })
    /*删除字典数据(删除多条数据)*/
    function deleteDictionaryList(data){
    //获取数据表格中的行数据
        var checkStatus = table.checkStatus("dictionaryTable")
        console.log(checkStatus)
        // 获取所有被选中的记录对应的数据
        var dictionaryData = checkStatus.data;

        // 判断用户是否选择的记录 (选中行的数量大于0)
        if (dictionaryData.length < 1) {
            layer.msg("请选择要删除的记录！",{icon:5});
            return;
        }

        // 询问用户是否确认删除
        layer.confirm('您确定要删除选中的记录吗？',{icon:3, title:'字典管理'}, function (index) {
            // 关闭确认框
            layer.close(index);
            // 传递的参数是数组   ids=1&ids=2&ids=3
            var ids = "ids=";
            // 循环选中的行记录的数据
            for(var i = 0; i < dictionaryData.length; i++) {
                if(i < dictionaryData.length -1) {
                    ids = ids + dictionaryData[i].id + "&ids="
                } else {
                    ids = ids + dictionaryData[i].id;
                }
            }
            // console.log(ids);

            // 发送ajax请求，执行删除字典
            $.ajax({
                type:"post",
                url:ctx + "/dictionary/delete",
                data:ids, // 传递的参数是数组 ids=1&ids=2&ids=3
                success:function (result) {
                    // 判断删除结果
                    if (result.code == 200) {
                        // 提示成功
                        layer.msg("删除成功！",{icon:6});
                        // 刷新表格
                        tableIns.reload();
                    } else {
                        // 提示失败
                        layer.msg(result.msg, {icon:5});
                    }
                }
            });
        });


    }
    /*打开添加字典数据的窗口*/

    function openDictionaryDialog(dictionaryListId){
        console.log("添加");
        //弹出层标题
        var title ="<h3>字典管理——添加数据</h3>";
        var url = ctx +"/dictionary/toIndexPage";

        // 判断营销机会ID是否为空
        if (dictionaryListId != null && dictionaryListId != '') {
            console.log("更新");
            // 更新操作
            title  = "<h3>字典管理 - 更新字典</h3>";
            // 请求地址传递营销机会的ID
            url += '?dictionaryListId=' + dictionaryListId;
        }
        // iframe层
        layui.layer.open({
            // 类型
            type: 2,
            // 标题
            title: title,
            // 宽高
            area: ['500px', '620px'],
            // url地址
            content: url,
            // 可以最大化与最小化
            maxmin:true
        });
    }
/*行工具栏监听事件*/
    table.on('tool(dictionarys)',function (data){
        //判断类型
        if(data.event=="edit") {//编辑操作
            // 得到会的ID
            var dictionaryListId = data.data.id;
        //添加操作
            openDictionaryDialog(dictionaryListId);
        }else if(data.event=="delete"){//删除操作
            // 弹出确认框，询问用户是否确认删除
            layer.confirm('确定要删除该记录吗？',{icon:3, title:"字典管理"}, function (index) {
                // 关闭确认框
                layer.close(index);
                 // 发送ajax请求，删除记录
                $.ajax({
                    type:"post",
                    url:ctx + "/dictionary/delete",
                    data:{
                        ids:data.data.id
                    },
                    success:function (result) {
                        // 判断删除结果
                        if (result.code == 200) {
                            // 提示成功
                            layer.msg("删除成功！",{icon:6});
                            // 刷新表格
                            tableIns.reload();
                        } else {
                            // 提示失败
                            layer.msg(result.msg, {icon:5});
                        }
                    }
                });
            });
        }
    });
});








